home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / jcool01.zip / TEST_BIT.C < prev    next >
C/C++ Source or Header  |  1992-08-12  |  8KB  |  202 lines

  1. //
  2. // Copyright (C) 1991 Texas Instruments Incorporated.
  3. //
  4. // Permission is granted to any individual or institution to use, copy, modify,
  5. // and distribute this software, provided that this complete copyright and
  6. // permission notice is maintained, intact, in all copies and supporting
  7. // documentation.
  8. //
  9. // Texas Instruments Incorporated provides this software "as is" without
  10. // express or implied warranty.
  11. //
  12.  
  13. #include <test.h>
  14. #include <cool/Bit_Set.h>
  15.  
  16. void test_bit_set1() {
  17.   CoolBit_Set b0;
  18.   TEST ("CoolBit_Set b0", b0.length(), 0);
  19.   TEST ("b0.capacity()", b0.capacity(), 0);
  20.   TEST ("b0.is_empty()", b0.is_empty(), TRUE);
  21.   CoolBit_Set b1(12);
  22.   TEST ("CoolBit_Set b1(12)", b1.length(), 0);
  23.   TEST ("b1.capacity()", b1.capacity(), 16);
  24.   TEST ("b1.is_empty()", b1.is_empty(), TRUE);
  25.   TEST ("b1.find(4)", b1.find(4), FALSE);
  26.   TEST ("b1[4]==0", (b1[4] == 0), TRUE);
  27.   TEST ("b0.put(3)", b0.put(3), TRUE);
  28.   TEST ("b0.length()", b0.length(), 1);
  29.   TEST ("b0.is_empty()", b0.is_empty(), FALSE);
  30.   TEST ("b0.find(3)", b0.find(3), TRUE);
  31.   TEST ("b0.value()", b0.value(), 3);
  32.   TEST ("b0[3]==1", (b0[3]==1), TRUE);
  33.   TEST ("b1.put(4)", b1.put(4), TRUE);
  34.   TEST ("b1.find(4)", b1.find(4), TRUE);
  35.   TEST ("b1[4]==1", (b1[4] == 1), TRUE);
  36.   TEST ("b1.resize(18)", (b1.resize(18), 1),1);
  37.   TEST ("b1.capacity()", b1.capacity(), 24);
  38.   TEST ("b1.find(20)", b1.find(20), FALSE);
  39.   TEST ("b0.put(2,5)", b0.put (2,5), TRUE);
  40.   TEST ("b0.find(2)", b0.find(2), TRUE);
  41.   TEST ("b0.value()", b0.value(), 2);
  42.   TEST ("b0.find(3)", b0.find(3), TRUE);
  43.   TEST ("b0.value()", b0.value(), 3);
  44.   TEST ("b0.find(4)", b0.find(4), TRUE);
  45.   TEST ("b0.value()", b0.value(), 4);
  46.   TEST ("b0.find(5)", b0.find(5), TRUE);
  47.   TEST ("b0.value()", b0.value(), 5);
  48.   TEST ("b0.length()", b0.length(), 4);
  49.   TEST ("b0.remove(3)", b0.remove(3), TRUE);
  50.   TEST ("b0.find(3)", b0.find(3), FALSE);
  51.   TEST ("b0[3] == FALSE", b0[3], 0);
  52.   CoolBit_Set b2(b0);
  53.   TEST ("CoolBit_Set b2(b0)", b2.capacity(), b0.capacity());
  54.   TEST ("b2.length()", b2.length(), 3);
  55.   TEST ("b0 == b2", (b0 == b2), TRUE);
  56.   TEST ("b0 != b2", (b0 != b2), FALSE);
  57.   TEST ("b0 == b1", (b0 == b1), FALSE);
  58.   TEST ("b0 != b1", (b0 != b1), TRUE);
  59.   TEST ("b2.clear()", (b2.clear(),b2.length()), 0);
  60.   TEST ("b2 = b1", (b2 = b1, (b2 == b1)), TRUE);
  61.   b0.reset();
  62.   TEST ("b0.reset()", 1,1);
  63.   TEST ("b0.next()", b0.next(), TRUE);
  64.   TEST ("b0.value()", b0.value(), 2);
  65.   TEST ("b0.next()", b0.next(), TRUE);
  66.   TEST ("b0.value()", b0.value(), 4);
  67.   TEST ("b0.next()", b0.next(), TRUE);
  68.   TEST ("b0.value()", b0.value(), 5);
  69.   TEST ("b0.prev()", b0.prev(), TRUE);
  70.   TEST ("b0.value()", b0.value(), 4);
  71.   TEST ("b0.next()", b0.next(), TRUE);
  72.   TEST ("b0.value()", b0.value(), 5);
  73.   TEST ("b0.next()", b0.next(), FALSE);
  74.   TEST ("b0.put(9)", b0.put(9), TRUE);
  75.   TEST ("b0.capacity()", b0.capacity(), 16);
  76.   TEST ("b0.find(5)", b0.find(5), TRUE);
  77.   TEST ("b0.remove()", b0.remove(), TRUE);
  78.   TEST ("b0.length()", b0.length(), 3);
  79.   TEST ("b0.remove(2,9)", b0.remove(2,9), TRUE);
  80.   TEST ("b0.length()", b0.length(), 0);
  81.   TEST ("b0.find(9)", b0.find(9), FALSE);
  82.   TEST ("b0.value()", b0.value(), 9);
  83.   TEST ("b0.put(3,11)", b0.put (3,11), TRUE);
  84.   TEST ("b1.clear()", (b1.clear(),b1.length()), 0);
  85.   TEST ("b0.length()", b0.length(), 9);
  86.   TEST ("b1.put(4,9)", b1.put (4,9), TRUE);
  87.   TEST ("b0.search(b1)", b0.search(b1), TRUE);
  88.   TEST ("b1.put(19)", b1.put(19), TRUE);
  89.   TEST ("b0.search(b1)", b0.search(b1), FALSE);
  90.   TEST ("b2=~b0", (b2=~b0, b2!=b0), TRUE);
  91.   CoolBit_Set b3(16);
  92.   TEST ("CoolBit_Set b3(16)", b3.capacity(), 16);
  93.   TEST ("b3.put(0,15)", b3.put(0,15), TRUE);
  94.   TEST ("((b0 | b2) == b3)", ((b0 | b2) == b3), TRUE);
  95.   TEST ("((b0 & b2) == -b3)", ((b0 & b2) == -b3), TRUE);
  96.   TEST ("b1 = b0", (b1 = b0, b1 == b0), TRUE);
  97.   TEST ("b0 |= b2", (b0 |= b2, b0 == b3), TRUE);
  98.   TEST ("b0 = b1", (b0 = b1, b0 == b1), TRUE);
  99.   TEST ("(b0.set_union(b2), b0 == b3)", (b0.set_union(b2), b0 == b3), TRUE);
  100.   TEST ("b0 = b1", (b0 = b1, b0 == b1), TRUE);
  101.   TEST ("b0 &= b2", (b0 &= b2, b0 == -b3), TRUE);
  102.   TEST ("b0 = b1", (b0 = b1, b0 == b1), TRUE);
  103.   TEST ("(b0.set_intersection(b2), b0 == -b3)",(b0.set_intersection(b2), b0 == -b3),TRUE);
  104.   TEST ("b0.clear()", (b0.clear(), b0.length()), 0);
  105.   TEST ("b1.clear()", (b1.clear(), b1.length()), 0);
  106.   TEST ("b2.clear()", (b2.clear(), b2.length()), 0);
  107.   TEST ("b3.clear()", (b3.clear(), b3.length()), 0);
  108.   CoolBit_Set b5(16);
  109.   TEST ("CoolBit_Set b5(16)", b5.capacity(), 16);
  110.   TEST ("b5.put(0,1)", b5.put(0,1), TRUE);
  111.   TEST ("b5.put(6,7)", b5.put(6,7), TRUE);
  112.   CoolBit_Set b6(16);
  113.   TEST ("CoolBit_Set b6(16)", b6.capacity(), 16);
  114.   TEST ("b6.put(0,1)", b6.put(0,1), TRUE);
  115.   CoolBit_Set b7(16);
  116.   TEST ("CoolBit_Set b7(16)", b7.capacity(), 16);
  117.   TEST ("b7.put(6,7)", b7.put(6,7), TRUE);
  118.   TEST ("b0.put(0,5)", b0.put(0,5), TRUE);
  119.   TEST ("b2.put(2,7)", b2.put(2,7), TRUE);
  120.   TEST ("b1 = b0, b3 = b2", (b1=b0,b3=b2,(b1==b0 && b3==b2)), TRUE);
  121.   TEST ("((b0 ^ b2) == b5)", ((b0 ^ b2) == b5), TRUE);
  122.   TEST ("((b0 - b2) == b6)", ((b0 - b2) == b6), TRUE);
  123.   TEST ("((b2 - b0) == b7)", ((b2 - b0) == b7), TRUE);
  124.   TEST ("b0 ^= b2", ((b0 ^= b2), b0==b5), TRUE);
  125.   TEST ("b0 = b1",(b0=b1,b0==b1),TRUE);
  126.   TEST ("b0 -= b2", ((b0 -= b2), b0==b6), TRUE);
  127.   TEST ("b0 = b1",(b0=b1,b0==b1),TRUE);
  128.   TEST ("b2 -= b0", ((b2 -= b0), b2==b7), TRUE);
  129.   TEST ("b2 = b3",(b2=b3,b2==b3),TRUE);
  130.   TEST ("b0.set_xor(b2)", ((b0.set_xor(b2)), b0==b5), TRUE);
  131.   TEST ("b0 = b1",(b0=b1,b0==b1),TRUE);
  132.   TEST ("b0.set_difference(b2)", ((b0.set_difference(b2)), b0==b6), TRUE);
  133.   TEST ("b0 = b1",(b0=b1,b0==b1),TRUE);
  134.   TEST ("b2.set_difference(b0)", ((b2.set_difference(b0)), b2==b7), TRUE);
  135.   CoolBit_Set b8;
  136.   TEST ("CoolBit_Set b8", b8.capacity(), 0);
  137.   TEST ("b8.put(2,4)", b8.put(2,4), TRUE);
  138.   CoolBit_Set b9;
  139.   TEST ("CoolBit_Set b9", b9.capacity(), 0);
  140.   TEST ("b9.put(3,5)", b9.put(3,5), TRUE);
  141.   b8.reset(); b9.reset();
  142.   TEST ("b8.reset(), b9.reset()", 1,1);
  143.   TEST ("b8.next_union(b9)", b8.next_union(b9), TRUE);
  144.   TEST ("b8.value()", b8.value(), 2);
  145.   TEST ("b8.next_union(b9)", b8.next_union(b9), TRUE);
  146.   TEST ("b8.value()", b8.value(), 3);
  147.   TEST ("b8.next_union(b9)", b8.next_union(b9), TRUE);
  148.   TEST ("b8.value()", b8.value(), 4);
  149.   TEST ("b8.next_union(b9)", b8.next_union(b9), TRUE);
  150.   TEST ("b8.value()", b8.value(), 5);
  151.   TEST ("b8.next_union(b9)", b8.next_union(b9), FALSE);
  152.   b8.reset(); b9.reset();
  153.   TEST ("b8.reset(), b9.reset()", 1,1);
  154.   TEST ("b8.next_intersection(b9)", b8.next_intersection(b9), TRUE);
  155.   TEST ("b8.value()", b8.value(), 3);
  156.   TEST ("b8.next_intersection(b9)", b8.next_intersection(b9), TRUE);
  157.   TEST ("b8.value()", b8.value(), 4);
  158.   TEST ("b8.next_intersection(b9)", b8.next_intersection(b9), FALSE);
  159.   b8.reset(); b9.reset();
  160.   TEST ("b8.reset(), b9.reset()", 1,1);
  161.   TEST ("b8.next_difference(b9)", b8.next_difference(b9), TRUE);
  162.   TEST ("b8.value()", b8.value(), 2);
  163.   TEST ("b8.next_difference(b9)", b8.next_difference(b9), FALSE);
  164.   b8.reset(); b9.reset();
  165.   TEST ("b8.reset(), b9.reset()", 1,1);
  166.   TEST ("b8.next_xor(b9)", b8.next_xor(b9), TRUE);
  167.   TEST ("b8.value()", b8.value(), 2);
  168.   TEST ("b8.next_xor(b9)", b8.next_xor(b9), TRUE);
  169.   TEST ("b8.value()", b8.value(), 5);
  170.   TEST ("b8.next_xor(b9)", b8.next_xor(b9), FALSE);
  171. }
  172.  
  173. void test_bit_set2() {
  174.   CoolBit_Set b(10);
  175.   TEST ("CoolBit_Set b(10)", (b.capacity() >= 10), 1);
  176.   for (int i = 0; i < 10; i++) {
  177.     b.put(i);
  178.     cout << b << endl;
  179.     }
  180.   TEST ("for (int i=0;i<10;i++) b.put(i)", b.length(), 10);
  181. }
  182.  
  183.  
  184. void test_leak() {
  185.   for (;;) {
  186.     test_bit_set1();
  187.     test_bit_set2();
  188.   }
  189. }
  190.  
  191. int main () {
  192.   START("CoolBit_Set");
  193.   test_bit_set1();
  194.   test_bit_set2();
  195. #if LEAK
  196.   test_leak();
  197. #endif
  198.   SUMMARY();
  199.   return 0;
  200. }
  201.  
  202.